#include <stdio.h>

int main()
{
    // 一、枚举类型的定义和变量的声明分开
    // 1、先定义类型
    enum sex  // 这里至少需要定义一个
    {
        male
    };
    // 2、再声明变量
    enum sex female;
    enum sex unknown;
    enum sex shemale;
    enum sex special;

    printf("%d \n", male);
    printf("%d \n", unknown);
    printf("%d \n", shemale);
    printf("%d \n", special);
    // 二、类型定义与变量声明同时进行， 只是变量名放后面
    enum {
        one,
        two,
    } num;
    // 以下这种 不支持
    // enum num three;
    printf("%d \n", one);
    printf("%d \n", two);
    printf("%d \n", three);

    // 三、用typedef关键字将枚举类型定义成别名，并利用别名进行变量声明
    typedef enum city {
        tianjin,
        beijing
    } cityName;

    enum city shanghai;
    cityName guangzhou;
    
    printf("%d \n", tianjin);
    printf("%d \n", shanghai);
    printf("%d \n", guangzhou);

    typedef enum
    {
        rice,
        noodle
    } food;
    food dumpling;
    printf("%d \n", rice);
    printf("%d \n", noodle);
    printf("%d \n", dumpling);

    return 0;
}
